home *** CD-ROM | disk | FTP | other *** search
/ Xenosoft 2 / Xenosoft 2 (Game collection)(1994).iso / bioforge / script / warhead.scp < prev    next >
Text File  |  1994-12-08  |  9KB  |  454 lines

  1. // WARHEAD.SCR BY B. ADAMS
  2. // LEX DISMANTLES THE MISSILE NEAR THE CRASHED DROPSHIP AND GETS THE WARHEAD
  3. // ONCE LEX GETS THE WARHEAD ITS TIMER IS ACTIVATED.
  4.  
  5.  
  6. { BOMB_USE
  7.  
  8.     I  @Çó             ^àä                 == $Ç╗    THEN
  9.         {
  10.         ^àä                 = @Çì      WARHEAD_MON
  11.         ^ä┐             = 1
  12.         }
  13. }
  14.  
  15. [ BLOWBOT2
  16.     00:10   @Ç¥   BCHBOT2_DEATH
  17. ]
  18.  
  19. { BLAST_LEX
  20.  
  21.         @Çì      DAMAGE_LEX_ENERGY 666
  22.         //@@@ PLEASE TRANSLATE
  23.         @Ç║      (`ëÑ           $üé     "Aaaaahhh...!")
  24.         W    15
  25.         @Çå   ( `ǽ        , 255, -1024 )
  26.         // MAKE THE SCREEN FLASH WHITE
  27.         Ü             63 63 63 15
  28.         W    15
  29.  
  30.         I  @Çó             ^àà                   == $Ç╝   THEN
  31.                        ^àà                  
  32.  
  33.         I  @Çó             ^àä                 == $Ç╝   THEN
  34.             {
  35.                    
  36.                        ^àä                
  37.             }
  38.  
  39.         I  @Çó             ^àå         == $Ç╝   THEN
  40.                        ^àå        
  41.  
  42.         G  6666 6666 6666
  43. }
  44.  
  45. { BLOWLEXAWAY
  46.  
  47.     P        ~ÇÇ    
  48.  
  49.     ~ÇÇ     = -4750
  50.  
  51.     A  OFF
  52.     // TELEPORT THE FIGURE TO THE EDGE OF THE LEDGE
  53.     u          CURFIG OFF
  54.  
  55.     :LOOP
  56.     G  ~ÇÇ     @Çé    (CURFIG) @Çâ    (CURFIG)
  57.     ~ÇÇ     += 8
  58.     â      
  59.     I  ~ÇÇ     < -4724 THEN J    #Çä 
  60.  
  61.     // @@@ PLEASE TRANSLATE
  62.     @Ç║       (`ëú           $üé     "Noooo....!")
  63.  
  64.     // HAVE HIM RECOIL OFF THE LEDGE
  65.     I  @Çä     () IN -45,45 THEN
  66.         {
  67.         £    0
  68.         M      FALL_LEFT
  69.         }
  70.     E    I  @Çä     () IN 45,135 THEN
  71.         {
  72.         £    90
  73.         M      FALL_BACKWARD
  74.         }
  75.     E    I  @Çä     () IN -135,-45 THEN
  76.         {
  77.         £    -90
  78.         M      KNOCKED_FORWARD
  79.         }
  80.     E   
  81.         {
  82.         £    -180
  83.         M      FALL_RIGHT
  84.         }
  85.  
  86.     @Ç¥   KILLLEX
  87.     //@PROCESS DAMAGE_LEX_ENERGY 666
  88. }
  89.  
  90. { DESTROYITEMS
  91.  
  92.     // WAIT FOR BLAST TO FINISH
  93.     W    2 SECONDS
  94.  
  95.     ╣            
  96.     :TOP
  97.     I  @Çí          CURITEM BOMBHALL THEN ┤          
  98.  
  99.     I  @üè           == $Ç╝   THEN J    #Çå
  100. }
  101.  
  102. { DISARM_USE
  103.  
  104.         I  ^郠       != 1 THEN é     
  105.  
  106.         A  OFF
  107.         G  KNEEL WALK 20
  108.         £    -58 GRADUAL
  109.  
  110.         I  @ÇÆ                 RTHAND THEN
  111.             {
  112.             @ÇÜ             RTHAND
  113.             f         GROUND
  114.             }
  115.         // KNEEL DOWN
  116.         M      KNEEL
  117.         // RUN MOTION OF LEX DISMANTLING THE MISSILE CONE
  118.         M      GET_WARHEAD CONTINUE
  119.         W    2 SECONDS
  120.         ^éí        = 0
  121.         @Çå    (`ü╝          , 100)
  122.         @Çè               (^郠      , +1, 0, 7, 2)
  123.         W    3 SECONDS
  124.         @ÇÜ             BOMB
  125.         f         RTHAND
  126.         ^àà                   = @Çì      (WARHEAD_TIMER)
  127.         // STOP THE "get_warhead" MOTION
  128.         o         
  129.         // LEX REMOVED THE WARHEAD, NOW STAND UP
  130.         M      GOT_WARHEAD CONTINUE
  131.         W    1 SECOND
  132.         o         
  133.         M      STAND CONTINUE
  134.         // ADDLOGENTRY LEX MISSILE
  135.         A  ON
  136.         W    5 SECONDS
  137.  
  138.         // SHOW THE PLAYER THAT HE IS IN DANGER!
  139.         @Ç¥   BOMB_USE
  140.  
  141.         i           LEX WARHEAD
  142. }
  143.  
  144. { DOOR_BLASTED
  145.  
  146.     // MAKE THE BLAST DOOR NEUTRAL SO LEX CAN WALK THRU IT
  147.     ^ä▓             = $é╝     
  148.     ^ä│             = $é╗      
  149.     ^ä┤             = $é╗      
  150.     ^ä╡             = $é╗      
  151.     ^ä╢             = $é╗      
  152.  
  153.     // CHANGE ART OF DOOR/TUNNEL TO SHOW BLAST DAMAGE
  154.     ^饠        = 1
  155.     ^é₧         = 2
  156.     ^éú         = 2
  157. }
  158.  
  159. { KNOCKLEXDOWN_1
  160.  
  161.     A  OFF
  162.  
  163.     I  @Çä      IN -90, 90 THEN
  164.         {
  165.         M      KNOCKED_FORWARD
  166.         W    1 SECOND
  167.         M      GET_UP_FORWARD
  168.         }
  169.     E   
  170.         {
  171.         M      FALL_BACKWARD
  172.         W    15
  173.         M      GET_UP_BACK
  174.         }
  175.  
  176.     A  ON
  177. }
  178.  
  179. { KNOCKLEXDOWN_2
  180.  
  181.     A  OFF
  182.  
  183.     I  @Çä      IN 91, 180 OR @Çä      IN -179, -89 THEN
  184.         {
  185.         G  -4733 -4003 -31
  186.         £    180
  187.         M      KNOCKED_FORWARD
  188.         W    15
  189.         M      GET_UP_FORWARD
  190.         }
  191.     E   
  192.         {
  193.         G  -4733 -4003 -31
  194.         £    0
  195.         M      FALL_BACKWARD
  196.         W    15
  197.         M      GET_UP_BACK
  198.         }
  199.  
  200.     A  ON
  201. }
  202.  
  203. { LEX_BOMB_DROP
  204.  
  205.     @Ç¢               PLAYER
  206.     // CHECK TO SEE WHERE LEX CURRENTLY IS LOCATED
  207.     I  (@Çí          CURFIG FIREBTN2) == 1 THEN
  208.         {
  209.         ^ä┐             = 2
  210.         ^àä                 = @Ç¥   WARHEAD_MON
  211.  
  212.         :TEST
  213.         â      
  214.         I  ^àç            > 0 THEN J    #Çî 
  215.  
  216.         // SWITCH TO OUTSIDE VIEW OF THE BLAST TUNNEL UNLESS ALREADY LOADED
  217.         I  @ÇÄ              BCHB != 1 THEN C      BCHB
  218.  
  219.         // RUN EXPLOSION ANIMATION
  220.         :CAM_CHECK
  221.         â      
  222.         I  @ÇÄ              BCHB == 1 THEN
  223.             {
  224.             I  @Çí          CURFIG BOMBHALL THEN ^ä╜          = @Çì      BLOWLEXAWAY
  225.             E    @Çì      DESTROYITEMS
  226.  
  227.             @Ç¥   DOOR_BLASTED
  228.             @Ç¥   TUNNEL_EXPLOSION
  229.  
  230.             // UNCOMMENT LINE BELOW WHEN BUG IT CAUSES IS FIXED -BKA
  231.             @Çì      BLOWBOT2
  232.  
  233.             C      UNLOCK
  234.             é     
  235.             }
  236.         E    J    #Çì      
  237.         }
  238.     E   
  239.         {
  240.         ^ä┐             = 3
  241.         ^àä                 = @Çì      WARHEAD_MON
  242.         }
  243. }
  244.  
  245. // MONITORCHECK IS DESIGNED TO RUN INDEFINATELY. IT IS SUPPOSED TO SUSPEND
  246. // THE WARHEAD TIMER IF ANOTHER MONITOR IS STARTED AND THEN RESUME THE TIMER
  247. // WHEN THE NON-WARHEAD MONITOR IS SHUT OFF. -BKA
  248. { MONITORCHECK
  249.  
  250.     P        ~ÇÇ       
  251.     ~ÇÇ        = 0
  252.  
  253.     :CHECK
  254.     I  ~ÇÇ        = 0 THEN
  255.         {
  256.         I  ^àä                 == $Ç╗    && @Çú               THEN
  257.             {
  258.             ÿ              ^àà                  
  259.             ~ÇÇ        = 1
  260.             }
  261.         }
  262.     E   
  263.         {
  264.         I  ^àä                 == $Ç╗    && @Çú               == $Ç╗    THEN
  265.             {
  266.             Ö             ^àà                  
  267.             ~ÇÇ        = 0
  268.             }
  269.         }
  270.     â      
  271.     J    #ÇÅ  
  272. }
  273.  
  274. { REMOVE_BOMB
  275.  
  276.     I  @ÇÜ             BOMB != 1 THEN
  277.         {
  278.         Q       "Can't find the warhead!"       // DON'T TRANSLATE!
  279.         é     
  280.         }
  281.     f         COORDS 5555 5555 5555
  282. }
  283.  
  284. { STAGGERLEX
  285.  
  286.     A  OFF
  287.     I  @Çä      IN -90, 90 THEN
  288.         {
  289.         M      WOAH_FORWARD
  290.         W    15
  291.         }
  292.     E   
  293.         {
  294.         M      WOAH_BACKWARD
  295.         W    15
  296.         }
  297.  
  298.     A  ON
  299. }
  300.  
  301. [ TUNNEL_EXPLOSION
  302.  
  303. //      00:00   @MODIFYVAREVERYNTH(_XBM_FRAME, +1, 0, 14, 2)
  304.     00:02   @Çå    (`ÇÑ        )
  305.             ^飠       = 1
  306.             I  @Çí          CURFIG BOMBRAD1 THEN
  307.                 ^ä╛                  = @Çì      KNOCKLEXDOWN_1
  308.             I  @Çí          CURFIG BOMBRAD2 THEN
  309.                 ^ä╛                  = @Çì      KNOCKLEXDOWN_2
  310.             I  @Çí          CURFIG STAGGER  THEN
  311.                 @Çì      STAGGERLEX
  312.     00:04   ^飠       = 2
  313.     00:06   ^飠       = 3
  314.     00:08   ^飠       = 4
  315.     00:10   ^飠       = 5
  316.     00:12   ^飠       = 6
  317.     00:14   ^飠       = 7
  318.     00:16   ^飠       = 8
  319.     00:18   ^飠       = 9
  320.     00:20   ^飠       = 10
  321.     00:22   ^飠       = 11
  322.     00:24   ^飠       = 12
  323.     00:26   ^飠       = 13
  324.     00:28   ^飠       = 14
  325.     01:00   ^飠       = 0
  326. ]
  327.  
  328. [ WARHEAD_MON
  329.  
  330.     I  @Çú               THEN é     
  331.  
  332.              MASM
  333.     m          
  334.  
  335.     ^àê          = 255
  336.  
  337.     I  ^ä┐             == 2 THEN
  338.         {
  339.         // SET THE TIME REMAINING TO 75 4/30TH'S OF A SECOND, OR 10 SECONDS
  340.         ^àç             = 75
  341.         }
  342.     I  ^ä┐             == 3 THEN
  343.         {
  344.         // SET THE TIME REMAINING TO 15 4/30TH'S OF A SECOND, OR 2 SECONDS
  345.         ^àç             = 15
  346.         }
  347.  
  348.     ^àå             = @Çì      (HUNDREDTHS)
  349.  
  350.     :LOOP
  351.     // SET THE ART FRAMES ACCORDINGLY
  352.                 NO1A ^àÇ      
  353.                 NO2A ^àü      
  354.                 NO3A ^àé      
  355.                 NO4A ^àâ      
  356.     â      
  357.  
  358.            
  359.  
  360.     // IF LEX IS NEAR THE BLAST DOOR, SHOW THE MONITOR FOR A COUPLE OF SECS
  361.     I  ^ä┐             == 2 THEN
  362.         I  ^àç            <= 50 THEN
  363.             J    #Çò          
  364.         E   
  365.             J    #Çö 
  366.     E   
  367.         I  ^àç            > 0 THEN J    #Çö 
  368.         // ELSE JUMP ESCAPE_BUTTON
  369.  
  370.     :ESCAPE_BUTTON
  371.     @Çå   (`ü▒        )
  372.                ^àå        
  373.            
  374.     ^àê          = 200
  375. ]
  376.  
  377.  
  378. [ WARHEAD_TIMER
  379.  
  380.     @Çì      MONITORCHECK
  381.  
  382.     :LOOP
  383.     00:04
  384.  
  385.         ^àÇ       = ^àç            / 100
  386.         ^àÇ       = 10 - ^àÇ      
  387.         ^àü       = ^àç            % 100
  388.         ^àü       = ^àü       / 10
  389.         ^àü       = 10 - ^àü      
  390.         ^àé       = ^àç            % 10
  391.         ^àé       = 10 - ^àé      
  392.  
  393.         ^àç            --
  394.  
  395.         // THE OLD SOUND, PIM_BEEP_6 SEEMS TO NOW BE SILENT. -KLD
  396.         @Çå    `ü¡         ^àê         
  397.  
  398.         ò            
  399.  
  400.     // IF LEX HASN'T DROPPED THE WARHEAD AND THE WARHEAD MONITOR ISN'T
  401.     // RUNNING AND THE TIMER IS DOWN TO 2 SECONDS, CUT TO THE MONITOR.
  402.     I  ^ä┐             <= 1 THEN
  403.         I  ^àç            <= 15 && @Çó             ^àä                 == $Ç╗    THEN
  404.             {
  405.             ^àä                 = @Çì      WARHEAD_MON
  406.             J    #Çù 
  407.             }
  408.     E   
  409.         I  ^àç            > 0 THEN J    #Çù 
  410.  
  411.     // EXPLODE THE WARHEAD!
  412.     I  ^ä┐             != 2 THEN
  413.         @Çì      BLAST_LEX
  414.  
  415.     // NOW THAT THE WARHEAD HAS EXPLODED, GET RID OF IT
  416.     @Çì      REMOVE_BOMB
  417. ]
  418.  
  419. [ HUNDREDTHS
  420.  
  421.     :LOOP
  422.     00:01
  423.  
  424.         // CALCULATE THE "hundreths" OF A SECOND
  425.         ^àâ       ++
  426.         I  ^àâ       > 10 THEN ^àâ       = 1
  427.  
  428.     ò            
  429.     J    #ÇÖ 
  430. ]
  431.  
  432. { BLASTLOG
  433.  
  434.     W    1 SECOND
  435.     i           LEX BLASTDS
  436.  
  437. }
  438.  
  439. { TIMER_25
  440.  
  441.     // SET THE TIME REMAINING TO 202 4/30TH'S OF A SECOND, OR 27 SECONDS
  442.     ^àç             = 202
  443.  
  444.     I  @Çó             ^àä                 == $Ç╗    THEN
  445.         {
  446.         ^ä┐             = 1
  447.         ^àä                 = @Çì      WARHEAD_MON
  448.         }
  449.     W    2 SECONDS
  450.            
  451.                ^àä                
  452. }
  453. //$ 26 - version number
  454.